using UniversalAdminSystem.Domian.Core.ValueObjects;
using UniversalAdminSystem.Domian.UserManagement.ValueObj;

namespace UniversalAdminSystem.Domian.Core.Events;

// /// <summary>
// /// 用户创建事件
// /// </summary>
// public class UserCreatedEvent : DomainEvent
// {
//     public UserId UserId { get; }
//     public string Account { get; }

//     public UserCreatedEvent(UserId userId, string account)
//     {
//         UserId = userId;
//         Account = account;
//     }
// }

// /// <summary>
// /// 用户角色分配事件
// /// </summary>
// public class UserRoleAssignedEvent : DomainEvent
// {
//     public UserId UserId { get; }
//     public RoleId RoleId { get; }

//     public UserRoleAssignedEvent(UserId userId, RoleId roleId)
//     {
//         UserId = userId;
//         RoleId = roleId;
//     }
// }

// /// <summary>
// /// 用户角色移除事件
// /// </summary>
// public class UserRoleRemovedEvent : DomainEvent
// {
//     public UserId UserId { get; }
//     public RoleId RoleId { get; }

//     public UserRoleRemovedEvent(UserId userId, RoleId roleId)
//     {
//         UserId = userId;
//         RoleId = roleId;
//     }
// }

/// <summary>
/// 用户状态变更事件
/// </summary>
public class UserStatusChangedEvent : DomainEvent
{
    public UserId UserId { get; }
    public UserStatus OldStatus { get; }
    public UserStatus NewStatus { get; }

    public UserStatusChangedEvent(UserId userId, UserStatus oldStatus, UserStatus newStatus)
    {
        UserId = userId;
        OldStatus = oldStatus;
        NewStatus = newStatus;
    }
} 